package util;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisUtil {
//不能说1个并行度创建一次连接池,将连接池做成单例,为空才进行创建连接池

    private static JedisPool pool;

    public static Jedis getRedisClient() {

        if (pool == null) {
            //考虑到多线程的安全问题,同步锁
            synchronized (RedisUtil.class) {
                if (pool == null) {
                    JedisPoolConfig conf = new JedisPoolConfig();//JedisPoolConfig进行配置
                    conf.setMaxTotal(1000);//最多1000个连接
                    conf.setMaxIdle(100);//最多100个空闲的连接
                    conf.setMinIdle(10);//最多10个空闲的连接
                    conf.setMaxWaitMillis(1000 * 60);//最多等待1分钟
                    conf.setTestOnBorrow(true);//客户端可能出现串流的情况,借连接时进行测试会好些,虽然对性能有些许影响
                    conf.setTestOnCreate(true);//创建客户端时进行测试
                    conf.setTestOnReturn(true);//测试
                    pool = new JedisPool(conf, "hadoop162", 6379);
                }
            }

        }
        return pool.getResource();
    }
}
